Revise algorithm for scrolling backwards. This one might actually work
authorOwen Taylor <otaylor@redhat.com>
Sun, 21 Feb 1999 18:02:14 +0000 (18:02 +0000)
committerOwen Taylor <otaylor@src.gnome.org>
Sun, 21 Feb 1999 18:02:14 +0000 (18:02 +0000)
Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>

* gtk/gtktext.c (find_line_containing_point): Revise
algorithm for scrolling backwards. This one might actually
work with one-line-high Text widgets.

* gtk/gtkmain.c: Removed a misplaced comment, a few
formatting cleanups.

ChangeLog
ChangeLog.pre-2-0
ChangeLog.pre-2-10
ChangeLog.pre-2-2
ChangeLog.pre-2-4
ChangeLog.pre-2-6
ChangeLog.pre-2-8
gtk/gtkmain.c
gtk/gtktext.c

index 9a083b354e6ab9884be093031cfef1c0418c65b4..92eaac4e3230ed5e0a3cd1a48096941f46a876b4 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c (find_line_containing_point): Revise
+       algorithm for scrolling backwards. This one might actually 
+       work with one-line-high Text widgets.
+
+       * gtk/gtkmain.c: Removed a misplaced comment, a few 
+       formatting cleanups.
+
 Sat Feb 20 20:59:25 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkwindow.c: hm, set_modal doesn't really work with random
index 9a083b354e6ab9884be093031cfef1c0418c65b4..92eaac4e3230ed5e0a3cd1a48096941f46a876b4 100644 (file)
@@ -1,3 +1,12 @@
+Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c (find_line_containing_point): Revise
+       algorithm for scrolling backwards. This one might actually 
+       work with one-line-high Text widgets.
+
+       * gtk/gtkmain.c: Removed a misplaced comment, a few 
+       formatting cleanups.
+
 Sat Feb 20 20:59:25 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkwindow.c: hm, set_modal doesn't really work with random
index 9a083b354e6ab9884be093031cfef1c0418c65b4..92eaac4e3230ed5e0a3cd1a48096941f46a876b4 100644 (file)
@@ -1,3 +1,12 @@
+Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c (find_line_containing_point): Revise
+       algorithm for scrolling backwards. This one might actually 
+       work with one-line-high Text widgets.
+
+       * gtk/gtkmain.c: Removed a misplaced comment, a few 
+       formatting cleanups.
+
 Sat Feb 20 20:59:25 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkwindow.c: hm, set_modal doesn't really work with random
index 9a083b354e6ab9884be093031cfef1c0418c65b4..92eaac4e3230ed5e0a3cd1a48096941f46a876b4 100644 (file)
@@ -1,3 +1,12 @@
+Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c (find_line_containing_point): Revise
+       algorithm for scrolling backwards. This one might actually 
+       work with one-line-high Text widgets.
+
+       * gtk/gtkmain.c: Removed a misplaced comment, a few 
+       formatting cleanups.
+
 Sat Feb 20 20:59:25 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkwindow.c: hm, set_modal doesn't really work with random
index 9a083b354e6ab9884be093031cfef1c0418c65b4..92eaac4e3230ed5e0a3cd1a48096941f46a876b4 100644 (file)
@@ -1,3 +1,12 @@
+Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c (find_line_containing_point): Revise
+       algorithm for scrolling backwards. This one might actually 
+       work with one-line-high Text widgets.
+
+       * gtk/gtkmain.c: Removed a misplaced comment, a few 
+       formatting cleanups.
+
 Sat Feb 20 20:59:25 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkwindow.c: hm, set_modal doesn't really work with random
index 9a083b354e6ab9884be093031cfef1c0418c65b4..92eaac4e3230ed5e0a3cd1a48096941f46a876b4 100644 (file)
@@ -1,3 +1,12 @@
+Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c (find_line_containing_point): Revise
+       algorithm for scrolling backwards. This one might actually 
+       work with one-line-high Text widgets.
+
+       * gtk/gtkmain.c: Removed a misplaced comment, a few 
+       formatting cleanups.
+
 Sat Feb 20 20:59:25 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkwindow.c: hm, set_modal doesn't really work with random
index 9a083b354e6ab9884be093031cfef1c0418c65b4..92eaac4e3230ed5e0a3cd1a48096941f46a876b4 100644 (file)
@@ -1,3 +1,12 @@
+Sun Feb 21 11:39:06 1999  Owen Taylor  <otaylor@redhat.com>
+
+       * gtk/gtktext.c (find_line_containing_point): Revise
+       algorithm for scrolling backwards. This one might actually 
+       work with one-line-high Text widgets.
+
+       * gtk/gtkmain.c: Removed a misplaced comment, a few 
+       formatting cleanups.
+
 Sat Feb 20 20:59:25 1999  Tim Janik  <timj@gtk.org>
 
        * gtk/gtkwindow.c: hm, set_modal doesn't really work with random
index a2417a99814712ef89611d2358ebead35f09f793..8e2a2f32411b95d42b2dcb449b3ebf950b8c70e2 100644 (file)
@@ -177,12 +177,6 @@ gtk_init (int       *argc,
   if (gtk_initialized)
     return;
 
-  /* There is some argument for putting this in a separate
-   * function ... but I don't think that it is much
-   * of a restriction to require that GTK+ be used
-   * single threaded until gtk_init().
-   */
-
 #if    0
   g_set_error_handler (gtk_error);
   g_set_warning_handler (gtk_warning);
@@ -371,7 +365,7 @@ gtk_init (int        *argc,
     }
 
 #ifdef ENABLE_NLS
-  bindtextdomain("gtk+",GTK_LOCALEDIR);
+  bindtextdomain("gtk+", GTK_LOCALEDIR);
 #endif  
 
   /* Initialize the default visual and colormap to be
index 6e02d0b7922d2e50ac6aab4625d3c0586251ce11..312c5b140e52f789df7c01140cbe83d932970789 100644 (file)
@@ -3562,24 +3562,24 @@ find_line_containing_point (GtkText* text, guint point,
   gint height;
   
   text->current_line = NULL;
-  
-  if (!text->line_start_cache->next)
-    {
-      /* @@@ Its visible, right? */
-      text->current_line = text->line_start_cache;
-      return;
-    }
-  
-  while ( ( scroll && (text->first_cut_pixels != 0) &&
-           (CACHE_DATA(text->line_start_cache->next).start.index > point) ) ||
-         ( (text->first_cut_pixels == 0) &&
-           (CACHE_DATA(text->line_start_cache).start.index > point) ) )
+
+  TEXT_SHOW (text);
+
+  /* Scroll backwards until the point is on screen
+   */
+  while (CACHE_DATA(text->line_start_cache).start.index > point)
+    scroll_int (text, - LINE_HEIGHT(CACHE_DATA(text->line_start_cache)));
+
+  /* Now additionally try to make sure that the point is fully on screen
+   */
+  if (scroll)
     {
-      g_assert (text->line_start_cache->next);
-      scroll_int (text, - LINE_HEIGHT(CACHE_DATA(text->line_start_cache->next)));
+      while (text->first_cut_pixels != 0 && 
+            text->line_start_cache->next &&
+            CACHE_DATA(text->line_start_cache->next).start.index > point)
+       scroll_int (text, - LINE_HEIGHT(CACHE_DATA(text->line_start_cache->next)));
     }
-  
-  TEXT_SHOW (text);
+
   gdk_window_get_size (text->text_area, NULL, &height);
   
   for (cache = text->line_start_cache; cache; cache = cache->next)